//#include <stdio.h>
//
//int isLeapYear(int year) 
//{
//    return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
//}
//
//int main() 
//{
//    int year, month, day;
//    int daysInMonth[13] = { 0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
//
//    while (scanf_s("%d %d %d", &year, &month, &day) != EOF)
//    {
//        if (isLeapYear(year)) 
//        {
//            daysInMonth[2] = 29;
//        }
//        else 
//        {
//            daysInMonth[2] = 28;
//        }
//        int dayOfYear = 0;
//        for (int i = 1; i < month; i++) 
//        {
//            dayOfYear += daysInMonth[i];
//        }
//        dayOfYear += day;
//
//        printf("%d\n", dayOfYear);
//    }
//
//    return 0;
//}

//#include <stdio.h>
//
//int main() 
//{
//    int t;
//    scanf_s("%d", &t); 
//
//    while (t--) 
//    {
//        int a1, a2, b1, b2;
//        scanf_s("%d %d %d %d", &a1, &a2, &b1, &b2); 
//
//        int win_count = 0; 
//
//        for (int a_first = 0; a_first < 2; a_first++) 
//        {
//            int a_first_card = (a_first == 0) ? a1 : a2;
//            int a_second_card = (a_first == 0) ? a2 : a1;
//
//            for (int b_first = 0; b_first < 2; b_first++) 
//            {
//                int b_first_card = (b_first == 0) ? b1 : b2;
//                int b_second_card = (b_first == 0) ? b2 : b1;
//
//                int alex_wins = 0, bob_wins = 0;
//
//                if (a_first_card > b_first_card) 
//                {
//                    alex_wins++;
//                }
//                else if (a_first_card < b_first_card) 
//                {
//                    bob_wins++;
//                }
//
//                if (a_second_card > b_second_card) 
//                {
//                    alex_wins++;
//                }
//                else if (a_second_card < b_second_card) 
//                {
//                    bob_wins++;
//                }
//
//                if (alex_wins > bob_wins)
//                {
//                    win_count++;
//                }
//            }
//        }
//
//        printf("%d\n", win_count);
//    }
//
//    return 0;
//}

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int n;
    scanf_s("%d", &n); 

    int* coef = (int*)malloc((n + 1) * sizeof(int));
    for (int i = 0; i <= n; i++) 
    {
        scanf_s("%d", &coef[i]); 
    }
    int first = 1; 

    for (int i = n; i >= 0; i--) 
    {
        if (coef[i] == 0) continue; 

        if (!first)
        {
            if (coef[i] > 0)
            {
                printf("+");
            }
            else
            {
                printf("-");
            }
        }
        else if (coef[i] < 0) 
        {
            printf("-");
        }

        int abs_coef = abs(coef[i]);

        if (abs_coef != 1 || i == 0)
        {
            printf("%d", abs_coef);
        }

        if (i > 0)
        {
            printf("x");
            if (i > 1) {
                printf("^%d", i); 
            }
        }

        first = 0; 
    }

    if (first) 
    {
        printf("0");
    }

    free(coef); 
    return 0;
}